

from core.himesis import Himesis
import cPickle as pickle
from uuid import UUID

class HS2MS2Fexample(Himesis):
    def __init__(self):
        """
        Creates the himesis graph representing the AToM3 model HS2MS2Fexample.
        """
        # Flag this instance as compiled now
        self.is_compiled = True
        
        super(HS2MS2Fexample, self).__init__(name='HS2MS2Fexample', num_nodes=30, edges=[])
        
        # Add the edges
        self.add_edges([(10, 18), (18, 12), (10, 19), (19, 3), (11, 20), (20, 13), (11, 21), (21, 1), (25, 0), (29, 0), (9, 0), (12, 4), (4, 3), (13, 5), (5, 1), (6, 22), (6, 23), (6, 16), (7, 24), (7, 25), (7, 17), (1, 29), (14, 8), (8, 2), (15, 9), (16, 10), (17, 11), (22, 14), (23, 2), (24, 15), (27, 2), (12, 26), (13, 28), (26, 14), (28, 15), (3, 27)])
        # Set the graph attributes
        self["mm__"] = pickle.loads("""(lp1
S'SimpleDSLTransMM'
p2
a.""")
        self["name"] = """S2MS2Fexample"""
        self["GUID__"] = UUID('c17eafb4-2ea6-44d5-ac02-54002d4839c2')
        
        # Set the node attributes
        self.vs[0]["mm__"] = """Female_S"""
        self.vs[0]["classtype"] = """female"""
        self.vs[0]["name"] = """female_match_rule2"""
        self.vs[0]["GUID__"] = UUID('602c1540-1370-42ab-a8ac-44e77c82a7d1')
        self.vs[1]["mm__"] = """Female_T"""
        self.vs[1]["classtype"] = """female"""
        self.vs[1]["name"] = """female_match_rule2"""
        self.vs[1]["GUID__"] = UUID('9b991cd9-13b9-4d08-af17-6c06dd8043f1')
        self.vs[2]["mm__"] = """Male_S"""
        self.vs[2]["classtype"] = """male"""
        self.vs[2]["name"] = """male_match_rule1"""
        self.vs[2]["GUID__"] = UUID('be13a4e2-309b-488a-9f24-0d97fa0f2647')
        self.vs[3]["mm__"] = """Male_T"""
        self.vs[3]["classtype"] = """male"""
        self.vs[3]["name"] = """male_match_rule1"""
        self.vs[3]["GUID__"] = UUID('2dd8641f-1601-4202-8ccd-6e0c7f776252')
        self.vs[4]["mm__"] = """directLink_T"""
        self.vs[4]["associationType"] = """t_"""
        self.vs[4]["GUID__"] = UUID('328a1c93-9464-4ee4-b7ff-e6082f1292d9')
        self.vs[5]["mm__"] = """directLink_T"""
        self.vs[5]["associationType"] = """t_"""
        self.vs[5]["GUID__"] = UUID('172fa846-c776-4e52-a35c-a209b08a9e13')
        self.vs[6]["mm__"] = """MatchModel"""
        self.vs[6]["GUID__"] = UUID('a25dd523-a91c-4d62-b704-0d03ea3d59ea')
        self.vs[7]["mm__"] = """MatchModel"""
        self.vs[7]["GUID__"] = UUID('19a25c9f-f918-4d15-8745-856b24d7aeb4')
        self.vs[8]["mm__"] = """indirectLink_S"""
        self.vs[8]["GUID__"] = UUID('83056b62-555d-44ff-b8a5-7e77da1f1ed7')
        self.vs[9]["mm__"] = """indirectLink_S"""
        self.vs[9]["GUID__"] = UUID('55d2a121-963b-447c-b304-af9b8e6bcd4c')
        self.vs[10]["mm__"] = """ApplyModel"""
        self.vs[10]["GUID__"] = UUID('5648e1e7-50d8-4a06-9ef5-b05214f938ac')
        self.vs[11]["mm__"] = """ApplyModel"""
        self.vs[11]["GUID__"] = UUID('912d5819-1f89-40f9-ae9a-a54695c1c06a')
        self.vs[12]["mm__"] = """Station_T"""
        self.vs[12]["classtype"] = """station"""
        self.vs[12]["name"] = """station_apply_rule1"""
        self.vs[12]["GUID__"] = UUID('7e513639-0e54-4843-bb39-842cfb0dd391')
        self.vs[13]["mm__"] = """Station_T"""
        self.vs[13]["classtype"] = """station"""
        self.vs[13]["name"] = """station_match_rule2"""
        self.vs[13]["GUID__"] = UUID('0e461f95-b899-491f-ab11-d7b7e1433aa2')
        self.vs[14]["mm__"] = """Station_S"""
        self.vs[14]["classtype"] = """station"""
        self.vs[14]["name"] = """station_match_rule1"""
        self.vs[14]["GUID__"] = UUID('a961461c-3dc6-4e16-b901-7e63c2b6230a')
        self.vs[15]["mm__"] = """Station_S"""
        self.vs[15]["classtype"] = """station"""
        self.vs[15]["name"] = """station_match_rule2"""
        self.vs[15]["GUID__"] = UUID('da6b8208-e719-49b6-a2f7-5440abdd355a')
        self.vs[16]["mm__"] = """paired_with"""
        self.vs[16]["GUID__"] = UUID('12e9362f-1fde-40e6-b880-ee0ca7e553fa')
        self.vs[17]["mm__"] = """paired_with"""
        self.vs[17]["GUID__"] = UUID('4d7bc187-a0d4-4def-aa23-2bf233b90d3b')
        self.vs[18]["mm__"] = """apply_contains"""
        self.vs[18]["GUID__"] = UUID('2155de74-99db-4ef8-ae0b-a09f1075f1a7')
        self.vs[19]["mm__"] = """apply_contains"""
        self.vs[19]["GUID__"] = UUID('94aae402-5949-47e7-8bdb-6f6430ab7ad8')
        self.vs[20]["mm__"] = """apply_contains"""
        self.vs[20]["GUID__"] = UUID('6cb75812-35ae-401d-9bfc-54547a57b02f')
        self.vs[21]["mm__"] = """apply_contains"""
        self.vs[21]["GUID__"] = UUID('06003a12-c6ce-47c3-a363-da529129a5bf')
        self.vs[22]["mm__"] = """match_contains"""
        self.vs[22]["GUID__"] = UUID('89ed8c2c-5088-4443-a471-27d526fa0808')
        self.vs[23]["mm__"] = """match_contains"""
        self.vs[23]["GUID__"] = UUID('354bd0d1-53b9-4f6b-b868-c3d41147f352')
        self.vs[24]["mm__"] = """match_contains"""
        self.vs[24]["GUID__"] = UUID('eb95c0cb-3967-472c-a0eb-53e883dbf90d')
        self.vs[25]["mm__"] = """match_contains"""
        self.vs[25]["GUID__"] = UUID('38bb3823-215b-4436-93d3-a40ef8257092')
        self.vs[26]["mm__"] = """backward_link"""
        self.vs[26]["GUID__"] = UUID('c7c83346-ec89-425c-b83f-45216ee62fbf')
        self.vs[27]["mm__"] = """backward_link"""
        self.vs[27]["GUID__"] = UUID('8a8d51e3-d93d-488e-8d11-fa51c01e9096')
        self.vs[28]["mm__"] = """backward_link"""
        self.vs[28]["GUID__"] = UUID('2575d79d-8f4d-48f6-98e9-c892821e61b2')
        self.vs[29]["mm__"] = """backward_link"""
        self.vs[29]["GUID__"] = UUID('c83938c8-5e49-4499-8944-7dd266a985b8')

